/**
 * Team CJRR ECE 448/449 Senior Design Project
 * for Miami University, Spring & Fall 2013
 *
 * Multifunction Utility Glove
 * - Non-Contact Voltage Sensor
 * - Stud Sensor
 * - Flashlight
 * - Laser Pointer
 */

/**
 * Copyrights and licenses to go here.
 */

#ifndef GLOVE_STATE_H
#define GLOVE_STATE_H

#include <stddef.h>
#include <stdint.h>


class state
{
   public:
      state();
      virtual ~state();

      static void set_next(state* s);
      static void update();

      virtual void on_enter() = 0;
      virtual void on_update() = 0;
      virtual void on_leave() = 0;


   private:
      static uint16_t next_id;
      static state* curr_state;
      static state* next_state;
      static state* prev_state;

      const uint16_t id;
};

#endif

